package com.johnny.xia.extend;

import java.util.HashMap;
import java.util.Map;
import java.util.Map.Entry;

public class A {
	public void f1() {
		System.out.println("f1");
	}

	private void f2() {
		System.out.println("f2");
	}

	public static void main(String[] args) {
		Map<String, Long> map = new HashMap<>();
		map.put("category_Parent_313", 312L);
		map.put("category_Parent_311", 309L);
		map.put("category_Parent_312", 311L);
		map.put("category_Parent_9", 6L);
		map.put("category_Parent_6", 2L);
		map.put("category_Parent_309", 308L);
		map.put("category_Parent_51", 37L);
		map.put("category_Parent_307", 1L);
		map.put("category_Parent_308", 307L);
		map.put("category_Parent_1", 0L);
		map.put("category_Parent_2", 1L);
		map.put("category_Parent_18", 9L);
		map.put("category_Parent_37", 18L);

		Map<Long, c> map2 = new HashMap<>();

		for (Entry<String, Long> entry : map.entrySet()) {
			Long id = Long.parseLong(entry.getKey().replace("category_Parent_", ""));
			map2.put(id, new A().new c(id, entry.getValue()));
		}

		for (Entry<Long, c> entry : map2.entrySet()) {
			String tmp = "";
			Long tmpId = entry.getKey();
			c c1 = null;
			while (true) {
				if (tmpId == null || tmpId == 0) {
					break;
				}

				c1 = map2.get(tmpId);
				tmpId = c1.getpId();
				if (tmp.equals("")) {
					tmp = c1.getId()+tmp;
				} else {
					tmp = c1.getId()+"-"+tmp;
				}

			}
			System.out.println(tmp);
		}
		
		
//		Map<String, Long> map = new HashMap<>();
//		map.put("category_Parent_313", 312L);
//		map.put("category_Parent_311", 309L);
//		map.put("category_Parent_312", 311L);
//		map.put("category_Parent_9", 6L);
//		map.put("category_Parent_6", 2L);
//		map.put("category_Parent_309", 308L);
//		map.put("category_Parent_51", 37L);
//		map.put("category_Parent_307", 1L);
//		map.put("category_Parent_308", 307L);
//		map.put("category_Parent_1", 0L);
//		map.put("category_Parent_2", 1L);
//		map.put("category_Parent_18", 9L);
//		map.put("category_Parent_37", 18L);
//		
//		Map<Long, c> map2 = new HashMap<>();
//		
//		for (Entry<String, Long> entry : map.entrySet()) {
//			Long id = Long.parseLong(entry.getKey().replace("category_Parent_", ""));
//			map2.put(id, new A().new c(id, entry.getValue()));
//		}
//		
//		for (Entry<Long, c> entry : map2.entrySet()) {
//			String tmp = "";
//			Long tmpId = entry.getKey();
//			c c1 = null;
//			while (true) {
//				if (tmpId == null || tmpId == 0) {
//					break;
//				}
//				
//				c1 = map2.get(tmpId);
//				tmpId = c1.getpId();
//				if (tmp.equals("")) {
//					tmp += c1.getId();
//				} else {
//					tmp += "-" + c1.getId();
//				}
//				
//			}
//			System.out.println(tmp);
//		}

	}

	class c {
		Long id;

		Long pId;

		public c() {
		}

		public c(Long id, Long pId) {
			this.id = id;
			this.pId = pId;
		}

		public Long getId() {
			return id;
		}

		public Long getpId() {
			return pId;
		}

		public void setId(Long id) {
			this.id = id;
		}

		public void setpId(Long pId) {
			this.pId = pId;
		}

	}

}
